const path = require('path')
const {
  override,
  fixBabelImports, //babel的配置
  addLessLoader, //所有的loader 在这里重构,
  addWebpackPlugin, //所有的插件重写
  addWebpackAlias //添加别名
} = require("customize-cra");

const ProgressBarPlugin = require('progress-bar-webpack-plugin')
const HardSourceWebpackPlugin = require('hard-source-webpack-plugin')
const rewireReactHotLoader = require('react-app-rewire-hot-loader')

module.exports = override(
  fixBabelImports('import', {
    libraryName: 'antd',
    libraryDirectory: 'es',
    style: true, // or css   true 表示使用less
  }),
  addLessLoader({
    lessOptions: {
      javascriptEnabled: true,
      modifyVars: { '@primary-color': '#40A9FF' }, //对antd 定制主题色
    },
  }),
  addWebpackPlugin(
    new ProgressBarPlugin(), //项目启动构建进度
    new HardSourceWebpackPlugin() // 打包缓存，优化性能
  ),
  addWebpackAlias({
    '@': path.resolve(__dirname, 'src'), // 路径重定向 @ 代替 别名 可增加多个
  }),
  (config, env) => {
    if (env === 'production') {
      config.devtool = false //如果是成产环境，工具不启动
    }
    config = rewireReactHotLoader(config, env) //配置局部热更新
    return config
  },
)
